package AdministradorConfiguracion;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Etapa {

	private Integer numero;
	private String nombre;
	private ArrayList<Candidato> candidatosEtapa;
	private Map<Integer, Lista> listas;

	public Etapa(Integer numero, String nombre) {
		this.numero = numero;
		this.nombre = nombre;
		this.candidatosEtapa = new ArrayList<Candidato>();
		this.listas = new HashMap<Integer, Lista>();
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public int getNumero() {
		return numero;
	}

	public void setNumero(int numero) {
		this.numero = numero;
	}

	public void addLista(Lista lista) {
		this.listas.put(lista.getNumero(), lista);
	}

	public int cantidadListas() {
		return listas.size();
	}

	public Lista getLista(int numeroLista) {
		return listas.get(numeroLista);
	}

	public void addCandidato(Candidato candidato) {
		candidatosEtapa.add(candidato);
	}

	public void shuffle() {
		Collections.shuffle(candidatosEtapa.subList(0,
				candidatosEtapa.size() - 2));
	}

	public ArrayList<Candidato> getCandidatos() {
		return candidatosEtapa;
	}

	public String toString() {
		String s = "Etapa " + numero + " :" + nombre + "\n";
		for (Candidato c : candidatosEtapa) {
			s += c + "\n";
		}
		return s;
	}

	public void addCandidatoBlanco() {
		candidatosEtapa.add(new Candidato(this));
	}
}
